package com.unionpay.mpds.model;

// default package

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

/**
 * Pbocic entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "T_PBOCIC", uniqueConstraints = @UniqueConstraint(columnNames = "IC_INDEX"))
public class Pbocic implements java.io.Serializable {

	// Fields

	/**
	 * 
	 */
	private static final long serialVersionUID = 4578276749188749632L;
	private String icIndex;
	private String instCode;
	private String icAid;
	private Integer icAsi;
	private String icAppVer;
	private String icTacDefault;
	private String icTacOnline;
	private String icPubkeyCheck;
	private Integer icPubkeyPoint;
	private String icPubkeyMode;
	private Integer icPubkeyAlg;
	private Integer icPubkeyHash;
	private String icPubkeyExp;
	private Integer icPubkeyIndex;
	private String icPubkeyRid;
	private String icNfcCvm;
	private String icNfcLimitAmt;
	private String icNfcLeastAmt;
	private String icCashLimitAmt;
	private String icRandPer;
	private String icRandMaxPer;
	private Integer icRandOffset;
	private Integer icLeastAmt;
	private String icDdolDefault;
	private String icOnlinePin;
	private String icTacRefuse;

	// Constructors

	/** default constructor */
	public Pbocic() {
	}

	/** minimal constructor */
	public Pbocic(String icIndex, String instCode, String icAid,
			Integer icAsi, String icAppVer, String icTacDefault,
			String icPubkeyCheck, Integer icPubkeyPoint,
			String icPubkeyMode, Integer icPubkeyAlg,
			Integer icPubkeyHash, String icPubkeyExp,
			Integer icPubkeyIndex, String icPubkeyRid, String icNfcCvm,
			String icNfcLimitAmt, String icNfcLeastAmt, String icCashLimitAmt,
			String icRandPer, String icRandMaxPer, Integer icRandOffset,
			Integer icLeastAmt, String icOnlinePin, String icTacRefuse) {
		this.icIndex = icIndex;
		this.instCode = instCode;
		this.icAid = icAid;
		this.icAsi = icAsi;
		this.icAppVer = icAppVer;
		this.icTacDefault = icTacDefault;
		this.icPubkeyCheck = icPubkeyCheck;
		this.icPubkeyPoint = icPubkeyPoint;
		this.icPubkeyMode = icPubkeyMode;
		this.icPubkeyAlg = icPubkeyAlg;
		this.icPubkeyHash = icPubkeyHash;
		this.icPubkeyExp = icPubkeyExp;
		this.icPubkeyIndex = icPubkeyIndex;
		this.icPubkeyRid = icPubkeyRid;
		this.icNfcCvm = icNfcCvm;
		this.icNfcLimitAmt = icNfcLimitAmt;
		this.icNfcLeastAmt = icNfcLeastAmt;
		this.icCashLimitAmt = icCashLimitAmt;
		this.icRandPer = icRandPer;
		this.icRandMaxPer = icRandMaxPer;
		this.icRandOffset = icRandOffset;
		this.icLeastAmt = icLeastAmt;
		this.icOnlinePin = icOnlinePin;
		this.icTacRefuse = icTacRefuse;
	}

	/** full constructor */
	public Pbocic(String icIndex, String instCode, String icAid,
			Integer icAsi, String icAppVer, String icTacDefault,
			String icTacOnline, String icPubkeyCheck, Integer icPubkeyPoint,
			String icPubkeyMode, Integer icPubkeyAlg,
			Integer icPubkeyHash, String icPubkeyExp,
			Integer icPubkeyIndex, String icPubkeyRid, String icNfcCvm,
			String icNfcLimitAmt, String icNfcLeastAmt, String icCashLimitAmt,
			String icRandPer, String icRandMaxPer, Integer icRandOffset,
			Integer icLeastAmt, String icDdolDefault, String icOnlinePin,
			String icTacRefuse) {
		this.icIndex = icIndex;
		this.instCode = instCode;
		this.icAid = icAid;
		this.icAsi = icAsi;
		this.icAppVer = icAppVer;
		this.icTacDefault = icTacDefault;
		this.icTacOnline = icTacOnline;
		this.icPubkeyCheck = icPubkeyCheck;
		this.icPubkeyPoint = icPubkeyPoint;
		this.icPubkeyMode = icPubkeyMode;
		this.icPubkeyAlg = icPubkeyAlg;
		this.icPubkeyHash = icPubkeyHash;
		this.icPubkeyExp = icPubkeyExp;
		this.icPubkeyIndex = icPubkeyIndex;
		this.icPubkeyRid = icPubkeyRid;
		this.icNfcCvm = icNfcCvm;
		this.icNfcLimitAmt = icNfcLimitAmt;
		this.icNfcLeastAmt = icNfcLeastAmt;
		this.icCashLimitAmt = icCashLimitAmt;
		this.icRandPer = icRandPer;
		this.icRandMaxPer = icRandMaxPer;
		this.icRandOffset = icRandOffset;
		this.icLeastAmt = icLeastAmt;
		this.icDdolDefault = icDdolDefault;
		this.icOnlinePin = icOnlinePin;
		this.icTacRefuse = icTacRefuse;
	}

	// Property accessors

	@Id
	@Column(name = "IC_INDEX", unique = true, nullable = false, length = 40)
	public String getIcIndex() {
		return this.icIndex;
	}

	public void setIcIndex(String icIndex) {
		this.icIndex = icIndex;
	}

	@Column(name = "INST_CODE", nullable = false, length = 8)
	public String getInstCode() {
		return this.instCode;
	}

	public void setInstCode(String instCode) {
		this.instCode = instCode;
	}

	@Column(name = "IC_AID", nullable = false, length = 32)
	public String getIcAid() {
		return this.icAid;
	}

	public void setIcAid(String icAid) {
		this.icAid = icAid;
	}

	@Column(name = "IC_ASI", nullable = false)
	public Integer getIcAsi() {
		return this.icAsi;
	}

	public void setIcAsi(Integer icAsi) {
		this.icAsi = icAsi;
	}

	@Column(name = "IC_APP_VER", nullable = false, length = 4)
	public String getIcAppVer() {
		return this.icAppVer;
	}

	public void setIcAppVer(String icAppVer) {
		this.icAppVer = icAppVer;
	}

	@Column(name = "IC_TAC_DEFAULT", nullable = false, length = 10)
	public String getIcTacDefault() {
		return this.icTacDefault;
	}

	public void setIcTacDefault(String icTacDefault) {
		this.icTacDefault = icTacDefault;
	}

	@Column(name = "IC_TAC_ONLINE", length = 10)
	public String getIcTacOnline() {
		return this.icTacOnline;
	}

	public void setIcTacOnline(String icTacOnline) {
		this.icTacOnline = icTacOnline;
	}

	@Column(name = "IC_PUBKEY_CHECK", nullable = false, length = 80)
	public String getIcPubkeyCheck() {
		return this.icPubkeyCheck;
	}

	public void setIcPubkeyCheck(String icPubkeyCheck) {
		this.icPubkeyCheck = icPubkeyCheck;
	}

	@Column(name = "IC_PUBKEY_POINT", nullable = false)
	public Integer getIcPubkeyPoint() {
		return this.icPubkeyPoint;
	}

	public void setIcPubkeyPoint(Integer icPubkeyPoint) {
		this.icPubkeyPoint = icPubkeyPoint;
	}

	@Column(name = "IC_PUBKEY_MODE", nullable = false, length = 496)
	public String getIcPubkeyMode() {
		return this.icPubkeyMode;
	}

	public void setIcPubkeyMode(String icPubkeyMode) {
		this.icPubkeyMode = icPubkeyMode;
	}

	@Column(name = "IC_PUBKEY_ALG", nullable = false)
	public Integer getIcPubkeyAlg() {
		return this.icPubkeyAlg;
	}

	public void setIcPubkeyAlg(Integer icPubkeyAlg) {
		this.icPubkeyAlg = icPubkeyAlg;
	}

	@Column(name = "IC_PUBKEY_HASH", nullable = false)
	public Integer getIcPubkeyHash() {
		return this.icPubkeyHash;
	}

	public void setIcPubkeyHash(Integer icPubkeyHash) {
		this.icPubkeyHash = icPubkeyHash;
	}

	@Column(name = "IC_PUBKEY_EXP", nullable = false, length = 8)
	public String getIcPubkeyExp() {
		return this.icPubkeyExp;
	}

	public void setIcPubkeyExp(String icPubkeyExp) {
		this.icPubkeyExp = icPubkeyExp;
	}

	@Column(name = "IC_PUBKEY_INDEX", nullable = false)
	public Integer getIcPubkeyIndex() {
		return this.icPubkeyIndex;
	}

	public void setIcPubkeyIndex(Integer icPubkeyIndex) {
		this.icPubkeyIndex = icPubkeyIndex;
	}

	@Column(name = "IC_PUBKEY_RID", nullable = false, length = 10)
	public String getIcPubkeyRid() {
		return this.icPubkeyRid;
	}

	public void setIcPubkeyRid(String icPubkeyRid) {
		this.icPubkeyRid = icPubkeyRid;
	}

	@Column(name = "IC_NFC_CVM", nullable = false, length = 12)
	public String getIcNfcCvm() {
		return this.icNfcCvm;
	}

	public void setIcNfcCvm(String icNfcCvm) {
		this.icNfcCvm = icNfcCvm;
	}

	@Column(name = "IC_NFC_LIMIT_AMT", nullable = false, length = 12)
	public String getIcNfcLimitAmt() {
		return this.icNfcLimitAmt;
	}

	public void setIcNfcLimitAmt(String icNfcLimitAmt) {
		this.icNfcLimitAmt = icNfcLimitAmt;
	}

	@Column(name = "IC_NFC_LEAST_AMT", nullable = false, length = 12)
	public String getIcNfcLeastAmt() {
		return this.icNfcLeastAmt;
	}

	public void setIcNfcLeastAmt(String icNfcLeastAmt) {
		this.icNfcLeastAmt = icNfcLeastAmt;
	}

	@Column(name = "IC_CASH_LIMIT_AMT", nullable = false, length = 12)
	public String getIcCashLimitAmt() {
		return this.icCashLimitAmt;
	}

	public void setIcCashLimitAmt(String icCashLimitAmt) {
		this.icCashLimitAmt = icCashLimitAmt;
	}

	@Column(name = "IC_RAND_PER", nullable = false, length = 2)
	public String getIcRandPer() {
		return this.icRandPer;
	}

	public void setIcRandPer(String icRandPer) {
		this.icRandPer = icRandPer;
	}

	@Column(name = "IC_RAND_MAX_PER", nullable = false, length = 2)
	public String getIcRandMaxPer() {
		return this.icRandMaxPer;
	}

	public void setIcRandMaxPer(String icRandMaxPer) {
		this.icRandMaxPer = icRandMaxPer;
	}

	@Column(name = "IC_RAND_OFFSET", nullable = false)
	public Integer getIcRandOffset() {
		return this.icRandOffset;
	}

	public void setIcRandOffset(Integer icRandOffset) {
		this.icRandOffset = icRandOffset;
	}

	@Column(name = "IC_LEAST_AMT", nullable = false)
	public Integer getIcLeastAmt() {
		return this.icLeastAmt;
	}

	public void setIcLeastAmt(Integer icLeastAmt) {
		this.icLeastAmt = icLeastAmt;
	}

	@Column(name = "IC_DDOL_DEFAULT", length = 5)
	public String getIcDdolDefault() {
		return this.icDdolDefault;
	}

	public void setIcDdolDefault(String icDdolDefault) {
		this.icDdolDefault = icDdolDefault;
	}

	@Column(name = "IC_ONLINE_PIN", nullable = false, length = 1)
	public String getIcOnlinePin() {
		return this.icOnlinePin;
	}

	public void setIcOnlinePin(String icOnlinePin) {
		this.icOnlinePin = icOnlinePin;
	}

	@Column(name = "IC_TAC_REFUSE", nullable = false, length = 10)
	public String getIcTacRefuse() {
		return this.icTacRefuse;
	}

	public void setIcTacRefuse(String icTacRefuse) {
		this.icTacRefuse = icTacRefuse;
	}

	public boolean equals(Object other) {
		if ((this == other))
			return true;
		if ((other == null))
			return false;
		if (!(other instanceof Pbocic))
			return false;
		Pbocic castOther = (Pbocic) other;

		return ((this.getIcIndex() == castOther.getIcIndex()) || (this
				.getIcIndex() != null && castOther.getIcIndex() != null && this
				.getIcIndex().equals(castOther.getIcIndex())))
				&& ((this.getInstCode() == castOther.getInstCode()) || (this
						.getInstCode() != null
						&& castOther.getInstCode() != null && this
						.getInstCode().equals(castOther.getInstCode())))
				&& ((this.getIcAid() == castOther.getIcAid()) || (this
						.getIcAid() != null && castOther.getIcAid() != null && this
						.getIcAid().equals(castOther.getIcAid())))
				&& ((this.getIcAsi() == castOther.getIcAsi()) || (this
						.getIcAsi() != null && castOther.getIcAsi() != null && this
						.getIcAsi().equals(castOther.getIcAsi())))
				&& ((this.getIcAppVer() == castOther.getIcAppVer()) || (this
						.getIcAppVer() != null
						&& castOther.getIcAppVer() != null && this
						.getIcAppVer().equals(castOther.getIcAppVer())))
				&& ((this.getIcTacDefault() == castOther.getIcTacDefault()) || (this
						.getIcTacDefault() != null
						&& castOther.getIcTacDefault() != null && this
						.getIcTacDefault().equals(castOther.getIcTacDefault())))
				&& ((this.getIcTacOnline() == castOther.getIcTacOnline()) || (this
						.getIcTacOnline() != null
						&& castOther.getIcTacOnline() != null && this
						.getIcTacOnline().equals(castOther.getIcTacOnline())))
				&& ((this.getIcPubkeyCheck() == castOther.getIcPubkeyCheck()) || (this
						.getIcPubkeyCheck() != null
						&& castOther.getIcPubkeyCheck() != null && this
						.getIcPubkeyCheck()
						.equals(castOther.getIcPubkeyCheck())))
				&& ((this.getIcPubkeyPoint() == castOther.getIcPubkeyPoint()) || (this
						.getIcPubkeyPoint() != null
						&& castOther.getIcPubkeyPoint() != null && this
						.getIcPubkeyPoint()
						.equals(castOther.getIcPubkeyPoint())))
				&& ((this.getIcPubkeyMode() == castOther.getIcPubkeyMode()) || (this
						.getIcPubkeyMode() != null
						&& castOther.getIcPubkeyMode() != null && this
						.getIcPubkeyMode().equals(castOther.getIcPubkeyMode())))
				&& ((this.getIcPubkeyAlg() == castOther.getIcPubkeyAlg()) || (this
						.getIcPubkeyAlg() != null
						&& castOther.getIcPubkeyAlg() != null && this
						.getIcPubkeyAlg().equals(castOther.getIcPubkeyAlg())))
				&& ((this.getIcPubkeyHash() == castOther.getIcPubkeyHash()) || (this
						.getIcPubkeyHash() != null
						&& castOther.getIcPubkeyHash() != null && this
						.getIcPubkeyHash().equals(castOther.getIcPubkeyHash())))
				&& ((this.getIcPubkeyExp() == castOther.getIcPubkeyExp()) || (this
						.getIcPubkeyExp() != null
						&& castOther.getIcPubkeyExp() != null && this
						.getIcPubkeyExp().equals(castOther.getIcPubkeyExp())))
				&& ((this.getIcPubkeyIndex() == castOther.getIcPubkeyIndex()) || (this
						.getIcPubkeyIndex() != null
						&& castOther.getIcPubkeyIndex() != null && this
						.getIcPubkeyIndex()
						.equals(castOther.getIcPubkeyIndex())))
				&& ((this.getIcPubkeyRid() == castOther.getIcPubkeyRid()) || (this
						.getIcPubkeyRid() != null
						&& castOther.getIcPubkeyRid() != null && this
						.getIcPubkeyRid().equals(castOther.getIcPubkeyRid())))
				&& ((this.getIcNfcCvm() == castOther.getIcNfcCvm()) || (this
						.getIcNfcCvm() != null
						&& castOther.getIcNfcCvm() != null && this
						.getIcNfcCvm().equals(castOther.getIcNfcCvm())))
				&& ((this.getIcNfcLimitAmt() == castOther.getIcNfcLimitAmt()) || (this
						.getIcNfcLimitAmt() != null
						&& castOther.getIcNfcLimitAmt() != null && this
						.getIcNfcLimitAmt()
						.equals(castOther.getIcNfcLimitAmt())))
				&& ((this.getIcNfcLeastAmt() == castOther.getIcNfcLeastAmt()) || (this
						.getIcNfcLeastAmt() != null
						&& castOther.getIcNfcLeastAmt() != null && this
						.getIcNfcLeastAmt()
						.equals(castOther.getIcNfcLeastAmt())))
				&& ((this.getIcCashLimitAmt() == castOther.getIcCashLimitAmt()) || (this
						.getIcCashLimitAmt() != null
						&& castOther.getIcCashLimitAmt() != null && this
						.getIcCashLimitAmt().equals(
								castOther.getIcCashLimitAmt())))
				&& ((this.getIcRandPer() == castOther.getIcRandPer()) || (this
						.getIcRandPer() != null
						&& castOther.getIcRandPer() != null && this
						.getIcRandPer().equals(castOther.getIcRandPer())))
				&& ((this.getIcRandMaxPer() == castOther.getIcRandMaxPer()) || (this
						.getIcRandMaxPer() != null
						&& castOther.getIcRandMaxPer() != null && this
						.getIcRandMaxPer().equals(castOther.getIcRandMaxPer())))
				&& ((this.getIcRandOffset() == castOther.getIcRandOffset()) || (this
						.getIcRandOffset() != null
						&& castOther.getIcRandOffset() != null && this
						.getIcRandOffset().equals(castOther.getIcRandOffset())))
				&& ((this.getIcLeastAmt() == castOther.getIcLeastAmt()) || (this
						.getIcLeastAmt() != null
						&& castOther.getIcLeastAmt() != null && this
						.getIcLeastAmt().equals(castOther.getIcLeastAmt())))
				&& ((this.getIcDdolDefault() == castOther.getIcDdolDefault()) || (this
						.getIcDdolDefault() != null
						&& castOther.getIcDdolDefault() != null && this
						.getIcDdolDefault()
						.equals(castOther.getIcDdolDefault())))
				&& ((this.getIcOnlinePin() == castOther.getIcOnlinePin()) || (this
						.getIcOnlinePin() != null
						&& castOther.getIcOnlinePin() != null && this
						.getIcOnlinePin().equals(castOther.getIcOnlinePin())))
				&& ((this.getIcTacRefuse() == castOther.getIcTacRefuse()) || (this
						.getIcTacRefuse() != null
						&& castOther.getIcTacRefuse() != null && this
						.getIcTacRefuse().equals(castOther.getIcTacRefuse())));
	}

	public int hashCode() {
		int result = 17;

		result = 37 * result
				+ (getIcIndex() == null ? 0 : this.getIcIndex().hashCode());
		result = 37 * result
				+ (getInstCode() == null ? 0 : this.getInstCode().hashCode());
		result = 37 * result
				+ (getIcAid() == null ? 0 : this.getIcAid().hashCode());
		result = 37 * result
				+ (getIcAsi() == null ? 0 : this.getIcAsi().hashCode());
		result = 37 * result
				+ (getIcAppVer() == null ? 0 : this.getIcAppVer().hashCode());
		result = 37
				* result
				+ (getIcTacDefault() == null ? 0 : this.getIcTacDefault()
						.hashCode());
		result = 37
				* result
				+ (getIcTacOnline() == null ? 0 : this.getIcTacOnline()
						.hashCode());
		result = 37
				* result
				+ (getIcPubkeyCheck() == null ? 0 : this.getIcPubkeyCheck()
						.hashCode());
		result = 37
				* result
				+ (getIcPubkeyPoint() == null ? 0 : this.getIcPubkeyPoint()
						.hashCode());
		result = 37
				* result
				+ (getIcPubkeyMode() == null ? 0 : this.getIcPubkeyMode()
						.hashCode());
		result = 37
				* result
				+ (getIcPubkeyAlg() == null ? 0 : this.getIcPubkeyAlg()
						.hashCode());
		result = 37
				* result
				+ (getIcPubkeyHash() == null ? 0 : this.getIcPubkeyHash()
						.hashCode());
		result = 37
				* result
				+ (getIcPubkeyExp() == null ? 0 : this.getIcPubkeyExp()
						.hashCode());
		result = 37
				* result
				+ (getIcPubkeyIndex() == null ? 0 : this.getIcPubkeyIndex()
						.hashCode());
		result = 37
				* result
				+ (getIcPubkeyRid() == null ? 0 : this.getIcPubkeyRid()
						.hashCode());
		result = 37 * result
				+ (getIcNfcCvm() == null ? 0 : this.getIcNfcCvm().hashCode());
		result = 37
				* result
				+ (getIcNfcLimitAmt() == null ? 0 : this.getIcNfcLimitAmt()
						.hashCode());
		result = 37
				* result
				+ (getIcNfcLeastAmt() == null ? 0 : this.getIcNfcLeastAmt()
						.hashCode());
		result = 37
				* result
				+ (getIcCashLimitAmt() == null ? 0 : this.getIcCashLimitAmt()
						.hashCode());
		result = 37 * result
				+ (getIcRandPer() == null ? 0 : this.getIcRandPer().hashCode());
		result = 37
				* result
				+ (getIcRandMaxPer() == null ? 0 : this.getIcRandMaxPer()
						.hashCode());
		result = 37
				* result
				+ (getIcRandOffset() == null ? 0 : this.getIcRandOffset()
						.hashCode());
		result = 37
				* result
				+ (getIcLeastAmt() == null ? 0 : this.getIcLeastAmt()
						.hashCode());
		result = 37
				* result
				+ (getIcDdolDefault() == null ? 0 : this.getIcDdolDefault()
						.hashCode());
		result = 37
				* result
				+ (getIcOnlinePin() == null ? 0 : this.getIcOnlinePin()
						.hashCode());
		result = 37
				* result
				+ (getIcTacRefuse() == null ? 0 : this.getIcTacRefuse()
						.hashCode());
		return result;
	}
}